package com.pureut.storage.mapper;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.pureut.storage.dto.InventoryBalanceDto;
import com.sale.storage.api.dto.InvoicingReportDto;
import com.sale.storage.api.vo.InventoryBalanceVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * TODO
 *
 * @Description
 * @Author Try
 * @Date 2023/9/11 14:02
 **/
@Mapper
public interface WarehouseReportMapper {

    /**
     * 查询库存余额报表的基本信息
     * @param page
     * @param inventoryBalanceVo
     * @return
     */
    Page<InventoryBalanceDto> getInventoryBalance(@Param("page")Page<InventoryBalanceDto> page, @Param("inventoryBalanceVo") InventoryBalanceVo inventoryBalanceVo);

    /**
     * 根据物料编码查询出出库的信息
     */
    List<InvoicingReportDto> getOutStockInfo(InventoryBalanceVo inventoryBalanceVo);

    /**
     * 根据物料编码查询入库的信息
     */
    List<InvoicingReportDto> getInStockInfo(InventoryBalanceVo inventoryBalanceVo);

    /**
     * 根据物料编码查询出出库的信息
     */
    List<InvoicingReportDto> getOutStockInfoMonth(InventoryBalanceVo inventoryBalanceVo);

    /**
     * 根据物料编码查询入库的信息
     */
    List<InvoicingReportDto> getInStockInfoMonth(InventoryBalanceVo inventoryBalanceVo);

    /**
     * 根据物料编码查询出出库期初
     */
    String getOutStockInfoOpening(InventoryBalanceVo inventoryBalanceVo);

    /**
     * 根据物料编码查询入库的期初
     */
    InvoicingReportDto getInStockInfoOpening(InventoryBalanceVo inventoryBalanceVo);

    /**
     * 查询出入库物料信息
     * @param inventoryBalanceVo
     * @return
     */
    List<InvoicingReportDto> getWarehouseInfo(InventoryBalanceVo inventoryBalanceVo);

    /**
     * 查询物料分组集合
     * @param inventoryBalanceVo
     * @return
     */
    List<InvoicingReportDto> getMaterialCodeList(InventoryBalanceVo inventoryBalanceVo);

    /**
     * 查询物料分组集合(默认时间段)
     * @param format
     * @return
     */
    List<InvoicingReportDto> getMaterialCodeList1(String format);
}
